package my.springboot3.dto.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.persistence.GeneratedValue;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.apache.ibatis.annotations.Update;

import java.time.LocalDateTime;

@Data
/**
 * Category类代表一个分类实体
 * 它用于在应用程序中定义和操作分类相关的数据
 */
public class Category {
    /**
     * 自动生成的分类ID
     * 这是数据库中分类的唯一标识
     */
    @GeneratedValue
    @NotNull(groups = Update.class)
    private Integer id;

    /**
     * 分类名称
     * 用于描述分类的名称
     */
    @NotEmpty
    private String categoryName;//分类名

    /**
     * 分类别名
     * 用于提供分类的一个替代名称，通常用于URL或内部引用
     */
    private String categoryAlias;//别名

        /**
     * 创建用户的ID
     * 表示创建该分类的用户
     */
    private Integer createUser;//作者

    /**
     * 创建时间
     * 记录分类被创建的时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;//创建时间

    /**
     * 更新时间
     * 记录分类最后一次被更新的时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;//更新时间
}